Sound and Efficient Dynamic Verification of MPI Programs with Probe Non-determinism
نویسندگان
چکیده
We consider the problem of verifying MPI programs that use MPI_Probe and MPI_Iprobe. Conventional testing tools, known to be inadequate in general, are even more so for testing MPI programs containing MPI probes. A few reasons are: (i) use of the MPI_ANY_SOURCE argument can make MPI probes non-deterministic, allowing them to match multiple senders, (ii) an MPI_Recv that follows an MPI probe need not match the MPI_Send that was successfully probed, and (iii) simply re-running the MPI program, even with schedule perturbations, is insufficient to bring out all behaviors of an MPI program using probes. We develop several key insights that help develop an elegant solution: prioritizing MPI processes during dynamic verification, handling nondeterminism, and safe handling of probe loops. These solutions are incorporated into a new version of our dynamic verification tool ISP. ISP is now able to efficiently and soundly verify larger MPI examples, including MPI-BLAST and ADLB.
منابع مشابه
Static-analysis Assisted Dynamic Verification to Efficiently Handle Waitany Non-determinism
We consider the problem of verifying MPI using MPI_Waitany (and related operations wait/test some/all). Such programs have a higher degree of non-determinism over which user-written test harnesses cannot exert adequate control. This makes conventional MPI program testing even more ineffective. Our previous work has demonstrated the advantages of an MPI-specific dynamic partial order reduction a...
متن کاملA Sound Reduction of Persistent-Sets for Deadlock Detection in MPI Applications
Formal dynamic analysis of MPI programs is crucially important in the context of developing HPC applications. Existing dynamic verification tools for MPI programs suffer from exponential schedule explosion, especially when multiple non-deterministic receive statements are issued by a process. In this paper, we focus on detecting message-orphaning deadlocks within MPI programs. For this analysis...
متن کاملDynamic Verification of Hybrid Programs
Hybrid (mixed MPI/thread) programs are extremely important for efficiently programming future HPC systems. In this paper, we report our experience adapting ISP [3,4,5], our dynamic verifier for MPI programs, to verify a large hybrid MPI/Pthread program called Eddy Murphi [1]. ISP is a stateless model checker that works by replaying schedules leading up to previously recorded nondeterministic se...
متن کاملStatic-Analysis Assisted Dynamic Verification of MPI Waitany Programs (Poster Abstract)
Overview: It is well known that the number of schedules (interleavings) of a concurrent program grows exponentially with the number of processes. Our previous work has demonstrated the advantages of an MPI-specific dynamic partial order reduction (DPOR, [5]) algorithm called POE in a tool called ISP [1,2,3] in dramatically reducing the number of interleavings during formal dynamic verification....
متن کاملImplementing Efficient Dynamic Formal Verification Methods for MPI Programs
We examine the problem of formally verifying MPI programs for safety properties through an efficient dynamic (runtime) method in which the processes of a given MPI program are executed under the control of an interleaving scheduler. To ensure full coverage for given input test data, the algorithm must take into consideration MPI’s out-of-order completion semantics. The algorithm must also ensur...
متن کامل